<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class ingreso_reservaM extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    public function registrarPago($valor, $descripcion, $modoPago, $idReserva, $usuario) {
        $query = "INSERT INTO ingreso_reserva(id_reserva,fecha,valor,descripcion,modo_pago,usuario_encargado) VALUES('$idReserva',DATE_ADD(now(), INTERVAL -5 HOUR),'$valor','$descripcion','$modoPago','$usuario')";
        return $this->db->query($query);
    }

    public function obtenerIngreso($idPago) {
        $query = "SELECT  valor  from ingreso_reserva WHERE id_ingreso_reserva='$idPago'";
        return $this->db->query($query)->result();
    }

    public function obtenerIngresos($idReserva) {
        $query = "SELECT COALESCE(SUM(valor),0) totalIngreso from ingreso_reserva WHERE id_reserva='$idReserva'";
        return $this->db->query($query)->result();
    }

    public function listarIngresos($idReserva) {
        $query = "SELECT * from ingreso_reserva WHERE id_reserva='$idReserva'";
        return $this->db->query($query)->result();
    }

    public function esMiPago($idPago, $idEstablecimiento) {
        $query = "SELECT  count(*) as cantidad from ingreso_reserva i, reserva r WHERE i.id_ingreso_reserva='$idPago' AND i.id_reserva=r.id_reserva AND r.id_establecimiento='$idEstablecimiento'";
        return $this->db->query($query)->result();
    }

    public function eliminarPago($idPago) {
        $query = "DELETE from ingreso_reserva where id_ingreso_reserva='$idPago'";
        $this->db->query($query);
    }

    public function cantidadIngresosReserva($idEstablecimiento, $criterios) {
        $query = "SELECT count(*) cantidad
          from ingreso_reserva ir, reserva r, usuario u ,reserva_x_cuarto rc
            WHERE r.id_reserva=rc.id_reserva and ir.id_reserva=r.id_reserva and ir.usuario_encargado=u.id_usuario and r.id_establecimiento='$idEstablecimiento'";
        $query.=(!empty($criterios['habitacion'])) ? " AND rc.id_cuarto = '{$criterios['habitacion']}'" : " ";
        $query.=(!empty($criterios['desde'])) ? " AND ir.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND ir.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['modopago'])) ? " AND ir.modo_pago = '{$criterios['modopago']}'" : " ";
        $query.=(!empty($criterios['usuario'])) ? " AND u.id_usuario = '{$criterios['usuario']}'" : " ";
        return $this->db->query($query)->result();
    }

    public function listarTodosIngresos($idEstablecimiento, $filasPorPagina, $inicio, $criterios) {
        $query = "SELECT ir.*,u.nombre_completo 
            from ingreso_reserva ir, reserva r, usuario u ,reserva_x_cuarto rc
            WHERE r.id_reserva=rc.id_reserva and  ir.id_reserva=r.id_reserva and ir.usuario_encargado=u.id_usuario and r.id_establecimiento='$idEstablecimiento'";
        $query.=(!empty($criterios['habitacion'])) ? " AND rc.id_cuarto = '{$criterios['habitacion']}'" : " ";
        $query.=(!empty($criterios['desde'])) ? " AND ir.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND ir.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['modopago'])) ? " AND ir.modo_pago = '{$criterios['modopago']}'" : " ";
        $query.=(!empty($criterios['usuario'])) ? " AND u.id_usuario = '{$criterios['usuario']}'" : " ";
        $query.=" order by ir.fecha DESC LIMIT $inicio,$filasPorPagina";
        return $this->db->query($query)->result();
    }

    public function totalIngrsos($idEstablecimiento, $criterios) {
        $query = "SELECT COALESCE(SUM(ir.valor),0) cantidadingresos
             from ingreso_reserva ir, reserva r, usuario u ,reserva_x_cuarto rc
            WHERE r.id_reserva=rc.id_reserva and  ir.id_reserva=r.id_reserva and ir.usuario_encargado=u.id_usuario and r.id_establecimiento='$idEstablecimiento'";
        $query.=(!empty($criterios['habitacion'])) ? " AND rc.id_cuarto = '{$criterios['habitacion']}'" : " ";
        $query.=(!empty($criterios['desde'])) ? " AND ir.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND ir.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['modopago'])) ? " AND ir.modo_pago = '{$criterios['modopago']}'" : " ";
        $query.=(!empty($criterios['usuario'])) ? " AND u.id_usuario = '{$criterios['usuario']}'" : " ";
        return $this->db->query($query)->result();
    }

}